package com.yang.core.extension;

import com.yang.core.api.RestClientBuilder;

/**
 * RestClient扩展接口
 * 所有插件都需要实现这个接口
 */
public interface RestClientExtension {

    /**
     * 扩展点优先级（数值越小优先级越高）
     */
    default int getOrder() {
        return 100;
    }

    /**
     * 扩展点名称
     */
    default String getName() {
        return this.getClass().getSimpleName();
    }

    /**
     * 是否启用此扩展
     */
    default boolean isEnabled() {
        return true;
    }

    /**
     * 扩展RestClient构建器
     */
    void extend(RestClientBuilder builder);

    /**
     * 扩展初始化
     */
    default void initialize() {
        // 默认空实现
    }

    /**
     * 扩展销毁
     */
    default void destroy() {
        // 默认空实现
    }
}